package com.fishery.logistics.entity;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.*;

import java.util.Date;
import java.io.Serializable;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 
 * </p>
 *
 * @author run
 * @since 2021-01-23
 */
@TableName("t_logistics_path")
@ApiModel(value="TLogisticsPath对象", description="物流运输路径")
public class Path implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "id")
    @TableId(value = "id", type = IdType.ID_WORKER_STR)
    private String id;

    @ApiModelProperty(value = "物流站点编号")
    private String logisticsPathStationId;

    @ApiModelProperty(value = "物流站点信息")
    @TableField(exist = false)
    private Station logisticsPathStation;

    @ApiModelProperty(value = "物流订单id")
    private String orderId;

    @ApiModelProperty(value = "入站时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date logisticsPathArrivalTime;

    @ApiModelProperty(value = "出站时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    private Date logisticsPathDepartureTime;

    @ApiModelProperty(value = "上一个站点的编号")
    private String logisticsPathPreviousStationId;

    @ApiModelProperty(value = "版本号（乐观锁）")
    @Version
    @TableField(fill = FieldFill.INSERT)
    private Integer version;

    @ApiModelProperty(value = "逻辑删除（0未删除，1删除）")
    @TableLogic
    @TableField(fill = FieldFill.INSERT)
    private Integer isDeleted;

    @ApiModelProperty(value = "创建时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date gmtCreate;

    @ApiModelProperty(value = "修改时间")
    @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date gmtModified;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getLogisticsPathStationId() {
        return logisticsPathStationId;
    }

    public void setLogisticsPathStationId(String logisticsPathStationId) {
        this.logisticsPathStationId = logisticsPathStationId;
    }

    public Station getLogisticsPathStation() {
        return logisticsPathStation;
    }

    public void setLogisticsPathStation(Station logisticsPathStation) {
        this.logisticsPathStation = logisticsPathStation;
    }

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Date getLogisticsPathArrivalTime() {
        return logisticsPathArrivalTime;
    }

    public void setLogisticsPathArrivalTime(Date logisticsPathArrivalTime) {
        this.logisticsPathArrivalTime = logisticsPathArrivalTime;
    }

    public Date getLogisticsPathDepartureTime() {
        return logisticsPathDepartureTime;
    }

    public void setLogisticsPathDepartureTime(Date logisticsPathDepartureTime) {
        this.logisticsPathDepartureTime = logisticsPathDepartureTime;
    }

    public String getLogisticsPathPreviousStationId() {
        return logisticsPathPreviousStationId;
    }

    public void setLogisticsPathPreviousStationId(String logisticsPathPreviousStationId) {
        this.logisticsPathPreviousStationId = logisticsPathPreviousStationId;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public Date getGmtCreate() {
        return gmtCreate;
    }

    public void setGmtCreate(Date gmtCreate) {
        this.gmtCreate = gmtCreate;
    }

    public Date getGmtModified() {
        return gmtModified;
    }

    public void setGmtModified(Date gmtModified) {
        this.gmtModified = gmtModified;
    }

    @Override
    public String toString() {
        return "Path{" +
                "id='" + id + '\'' +
                ", logisticsPathStationId='" + logisticsPathStationId + '\'' +
                ", logisticsPathStation=" + logisticsPathStation +
                ", orderId='" + orderId + '\'' +
                ", logisticsPathArrivalTime=" + logisticsPathArrivalTime +
                ", logisticsPathDepartureTime=" + logisticsPathDepartureTime +
                ", logisticsPathPreviousStationId='" + logisticsPathPreviousStationId + '\'' +
                ", version=" + version +
                ", isDeleted=" + isDeleted +
                ", gmtCreate=" + gmtCreate +
                ", gmtModified=" + gmtModified +
                '}';
    }
}
